home *** CD-ROM | disk | FTP | other *** search
/ Hyper Stacks 1994 May / Hyper Stacks (Pacific HiTech)(1994)[Mac].iso / Games / TicTacToe / stack.txt < prev   
Text File  |  1988-03-23  |  7KB  |  224 lines

  1. -- stack: in
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x0 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 1
  11. -- first background id: 2778
  12. -- card count: 1
  13. -- first card id: 2866
  14. -- list block id: 2513
  15. -- print block id: 0
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 1
  19. -- free size: 992 bytes
  20. -- total size: 18912 bytes
  21. -- stack block size: 5632 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x00000000
  24. -- modified by hypercard version: 0x00000000
  25. -- opened by hypercard version: 0x00000000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. on openstack
  69.   set userlevel to 5
  70. end openstack
  71.  
  72. on update
  73.   global player,err
  74.   if player is 1 then
  75.     if err is 0 then
  76.       set hilite of card button "player 1" to false
  77.       set hilite of card button "player 2" to true
  78.       put empty into line 1 to 2 of card field 1
  79.       put empty into line 1 to 2 of card field 2
  80.       put "Your turn!" & return & "==========" & return into line 1 of card field 2
  81.       put "Wait!" & return & "==========" & return into line 1 of card field 1
  82.       put 2 into player
  83.     end if
  84.   else
  85.     if err is 0 then
  86.       set hilite of card button "player 2" to false
  87.       set hilite of card button "player 1" to true
  88.       put empty into line 1 to 2 of card field 1
  89.       put empty into line 1 to 2 of card field 2
  90.       put "Your turn!" & return & "==========" & return into line 1 of card field 1
  91.       put "Wait!" & return & "==========" & return into line 1 of card field 2
  92.       put 1 into player
  93.     end if
  94.   end if
  95.   put 0 into err
  96.   updatescore
  97. end update
  98.  
  99. on updatescore
  100.   global board,play1tot,play2tot
  101.   put 0 into play1tot
  102.   put 0 into play2tot
  103.   repeat with i = 1 to 9
  104.     if item i of board is 1 then
  105.       add 1 to play1tot
  106.     else
  107.       if item i of board is 2 then
  108.         add 1 to play2tot
  109.       end if
  110.     end if
  111.   end repeat
  112.   put play1tot into card field "play1score"
  113.   put play2tot into card field "play2score"
  114.   wincheck
  115. end updatescore
  116.  
  117. on wincheck
  118.   global play1tot,play2tot,board,win
  119.   if play1tot + play2tot > 4 then
  120.     put 0 into tot
  121.     add item 1 of board to tot
  122.     add item 2 of board to tot
  123.     add item 3 of board to tot
  124.     if tot is 3 then player1won 1,2,3
  125.     if tot is 6 then player2won 1,2,3
  126.     put 0 into tot
  127.     add item 4 of board to tot
  128.     add item 5 of board to tot
  129.     add item 6 of board to tot
  130.     if tot is 3 then player1won 4,5,6
  131.     if tot is 6 then player2won 4,5,6
  132.     put 0 into tot
  133.     add item 7 of board to tot
  134.     add item 8 of board to tot
  135.     add item 9 of board to tot
  136.     if tot is 3 then player1won 7,8,9
  137.     if tot is 6 then player2won 7,8,9
  138.     put 0 into tot
  139.     add item 1 of board to tot
  140.     add item 5 of board to tot
  141.     add item 9 of board to tot
  142.     if tot is 3 then player1won 1,5,9
  143.     if tot is 6 then player2won 1,5,9
  144.     put 0 into tot
  145.     add item 3 of board to tot
  146.     add item 5 of board to tot
  147.     add item 7 of board to tot
  148.     if tot is 3 then player1won 3,5,7
  149.     if tot is 6 then player2won 3,5,7
  150.     put 0 into tot
  151.     add item 1 of board to tot
  152.     add item 4 of board to tot
  153.     add item 7 of board to tot
  154.     if tot is 3 then player1won 1,4,7
  155.     if tot is 6 then player2won 1,4,7
  156.     put 0 into tot
  157.     add item 2 of board to tot
  158.     add item 5 of board to tot
  159.     add item 8 of board to tot
  160.     if tot is 3 then player1won 2,5,8
  161.     if tot is 6 then player2won 2,5,8
  162.     put 0 into tot
  163.     add item 3 of board to tot
  164.     add item 6 of board to tot
  165.     add item 9 of board to tot
  166.     if tot is 3 then player1won 3,6,9
  167.     if tot is 6 then player2won 3,6,9
  168.     if (win is 0) and (9 is not in board) then
  169.       play "c"
  170.       play "a"
  171.       play "t"
  172.       put empty into card field 2
  173.       put empty into card field 1
  174.       repeat 12
  175.         put "Cat's Game!" & return after card field 2
  176.         put "Cat's Game!" & return after card field 1
  177.       end repeat
  178.       put 1 into win
  179.       flash 5
  180.       exit to hypercard
  181.     end if
  182.   end if
  183. end wincheck
  184.  
  185. on player1won x,y,z
  186.   displaywin x,y,z
  187.   add 1 to card field win1score
  188.   put empty into card field 1
  189.   put empty into card field 2
  190.   repeat 12
  191.     put "You win!" & return after card field 1
  192.     put "You lose!" & return after card field 2
  193.   end repeat
  194. end player1won
  195.  
  196. on player2won x,y,z
  197.   displaywin x,y,z
  198.   add 1 to card field win2score
  199.   put empty into card field 2
  200.   put empty into card field 1
  201.   repeat 12
  202.     put "You win!" & return after card field 2
  203.     put "You lose!" & return after card field 1
  204.   end repeat
  205. end player2won
  206.  
  207. on displaywin x,y,z
  208.   global win
  209.   play "harpsichord" tempo 120 "c5e gq fe3 ee3 de3 ce gq fe3 ee3 de3 ce gq fe3 ee3 fe3 deq"
  210.   repeat 5
  211.     set hilite of card button x to true
  212.     set hilite of card button y to true
  213.     set hilite of card button z to true
  214.     set hilite of card button x to false
  215.     set hilite of card button y to false
  216.     set hilite of card button z to false
  217.   end repeat
  218.   put 1 into win
  219. end displaywin
  220.  
  221.  
  222.  
  223.  
  224.